var mongoose = require('mongoose');
mongoose.Promise = require('bluebird');
var Schema = mongoose.Schema;

var UserSchema = new Schema({
  // 唯一用户名
  username: {type: String, required: true},
  // 密码
  password: {type: String, required: true},
  // 积分
  integral: { type: Number, default: 0 },
  // 是否是会员
  vip: {type: Boolean, default: false},
  // 已经购买的
  buy: [Schema.Types.Mixed],
  // 发布过的
  release: [Schema.Types.Mixed],
  // 邮箱
  email: {type: String, required: true},
  // 昵称
  nickname: String,
  // 性别
  sex: String,
  // 头像
  headimgurl: String,
  // vip 开始时间
  vip_start_at: {type: Date},
  // vip 结束时间
  vip_end_at: {type: Date},
  // 创建时间
  create_at: { type: Date, default: Date.now },
});

// 静态方法 - 获取用户
UserSchema.statics.getUser = function (name, cb) {
  this.findOne({'username': name}, cb);
};

// // 静态方法 - 保存用户
// UserSchema.statics.saveToken = function (user, cb) {
//   user.save(function (err, result) {
//     return cb(err, result);
//   });
// };

// 生成Model
module.exports = mongoose.model('User', UserSchema);